﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//int main()
//{
//	int a = 10000;
//	//00000000 00000000 0010 0111 0001 0000
//	//00       00       27        10
//	//0x00 00 27 10
//
//	FILE * pf = fopen("test.txt", "wb"); // 打开文件
//
//	fwrite(&a, 4, 1, pf);//⼆进制的形式写到⽂件中
//	
//	fclose(pf);//关闭文件
//	pf = NULL;
//	return 0;
//}

//int main()
//{
//	FILE * pf = fopen("data.txt", "w");
//	//相对路径 
//	// . --> 当前目录
//	// .. --> 上一级目录
//	//在工程目录上
//	// 假设文件放在桌面上 --> 就要写一个路径 ..\  --> 绝对路径
//	// 防止是转义字符 \\
//	//打开文件的时候 ， 会自动创建一个文件信息区 ， 返回一个指针 ， 存放在pf 里
//
//	//fopen 函数 ， 如果打开成功 ， 则放回文件信息区的起始地址
//	//打开失败 ， 会返回 空指针 NULL
//	//检查返回值 就可以知道文件是否打开成功
//
//	if (pf == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//
//	//打开成功
//	//写文件
//
//	//关闭文件
//	fclose(pf);//传递相关的指针
//	//但是pf 里还存储着地址 ， 野指针 
//	pf = NULL;
//
//	return 0;
//}

//int main()
//{
//	FILE * pf = fopen("data.txt", "w");
//	if (pf == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//	//写文件
//	char c = 0;
//	for (c = 'a'; c <= 'z'; c++)
//	{
//		fputc(c, stdout);
//		//也适用于标准流
//		//光标会按照顺序完后走
//		//fputc 使用于所有输出流
//	}
//	
//	//关闭文件
//	fclose(pf);
//	pf = NULL;
//	return 0;
//}


//fputc('x', pf);
//fputc('y', pf);
//fputc('z', pf);



//int main()
//{
//	FILE* pf = fopen("test1.txt", "w");
//	//判断是否打开成功
//	if (pf == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//	//打开成功 --> 写文件
//
//	//关闭文件
//	fclose(pf);
//	pf = NULL;
//	return 0;
//}

//int main()
//{
//	FILE* pf = fopen("data.txt", "r");
//	if (pf == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//
//	//读文件
//	int ch = fgetc(pf);
//	printf("%c", ch);
//
//	ch = fgetc(pf);
//	printf("%c", ch);
//
//	ch = fgetc(pf);
//	printf("%c", ch);
//
//	printf("%c", ch);
//
//	ch = fgetc(pf);
//	printf("%c", ch);
//
//	ch = fgetc(pf);
//	printf("%c", ch);
//	//关闭文件
//	fclose(pf);
//	pf = NULL;
//	return 0;
//}

////fputs  -- 写一行
//int main()
//{
//	FILE* pf = fopen("data.txt", "w");
//	//判断是否打开成功
//	if (pf == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//
//	//fputs 写入一行 --> 并不带有换行效果
//	fputs("hello world !\n",pf);
//	fputs("Have a good time !\n", pf);
//
//	//关闭文件
//	fclose(pf);
//	pf = NULL;
//	return 0;
//}


//int main()
//{
//	FILE* pf = fopen("data.txt", "r");
//	if (pf == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//	//打开成功 --- 读文件
//	//char arr[100];
//	//fgets(arr, 100, pf);
//	//printf("%s", arr);
//
//	//fgets(arr, 100, pf);
//	//printf("%s", arr);
//
//	//当发生读取错误的时候 ， 会返回一个 NULL 指针
//	char arr[100];
//	while ((fgets(arr, 100, pf)) != NULL)
//	{
//		printf("%s", arr);
//	}
//
//	//关闭文件
//	fclose(pf);
//	pf = NULL;
//	return 0;
//}

//fprint
//error
int main()
{
	int num = 100;
	float score = 75.5;
	char name[10] = "张三";
	
	//打开文件
	FILE* pf = fopen("data.txt", "w");
	if (pf == NULL)
	{
		perror("fopen");
		return 1;
	}
	//写入文件
	fprintf(pf, "%d %f %s\n", num, score, name);


	//关闭文件
	fclose(pf);
	pf = NULL;
	return 0;
}